package net.ericaro.neojavagen.interfaces;

/**
 * <b>Annotation</b> ::= "@" <{@link net .ericaro .neojavagen .names .TypeName TypeName}> <{@link net .ericaro .neojavagen .interfaces .AnnotationValue
 * AnnotationValue}>?
 * 
 * @author eric@ericaro.net
 */
public class Annotation extends net.ericaro.neojavagen.JavaPartComposition implements net.ericaro.neojavagen.interfaces.ElementValue {
	private net.ericaro.neojavagen.interfaces.AnnotationValue annotationValue;

	private net.ericaro.neojavagen.names.TypeName typeName;

	public Annotation(net.ericaro.neojavagen.names.TypeName typeName) {
		this.typeName = typeName;
		this.annotationValue = null;
	}

	public Annotation(net.ericaro.neojavagen.names.TypeName typeName, net.ericaro.neojavagen.interfaces.AnnotationValue annotationValue) {
		super();
		this.typeName = typeName;
		this.annotationValue = annotationValue;
	}

	public net.ericaro.neojavagen.interfaces.AnnotationValue getAnnotationValue() {
		return annotationValue;
	}

	public net.ericaro.neojavagen.names.TypeName getTypeName() {
		return typeName;
	}

	public void setAnnotationValue(net.ericaro.neojavagen.interfaces.AnnotationValue annotationValue) {
		this.annotationValue = annotationValue;
	}

	public void setTypeName(net.ericaro.neojavagen.names.TypeName typeName) {
		this.typeName = typeName;
	}

	@Override
	public java.lang.String toString() {
		return print("@", typeName, annotationValue);
	}
}
